package com.getui.java.pushmessage;

import java.util.ArrayList;
import java.util.List;

import com.getui.java.COMM;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.ListMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.NotificationTemplate;

public class PushList {

	// 别名推送方式
	// static String Alias1 = "";

	public static void main(String[] args) throws Exception {
		// 配置返回每个用户返回用户状态，可选
		System.setProperty("gexin.rp.sdk.pushlist.needDetails", "true");
		IGtPush push = new IGtPush(COMM.host, COMM.appKey, COMM.masterSecret);
		// 通知透传模板
		NotificationTemplate template = notificationTemplateDemo();
		ListMessage message = new ListMessage();
		message.setData(template);
		// 设置消息离线，并设置离线时间
		message.setOffline(true);
		// 离线有效时间，单位为毫秒，可选
		message.setOfflineExpireTime(24 * 1000 * 3600);
		// 配置推送目标
		List targets = new ArrayList();
		Target target1 = new Target();
		target1.setAppId(COMM.appId);
		target1.setClientId(COMM.CID);
		targets.add(target1);
		// taskId用于在推送时去查找对应的message
		String taskId = push.getContentId(message);
		IPushResult ret = push.pushMessageToList(taskId, targets);
		System.out.println(ret.getResponse().toString());
		// {result=ok, contentId=OSL-1208_EKz3ACWubQ8bpbk2BMFCIA,
		// details={313d8122205579719244b777dc588a90=successed_offline}}
		if ("ok".equals(ret.getResponse().get("result"))) {
			System.out.println("发送成功");
		} else {
			System.out.println("发送失败");
		}
	}

	public static NotificationTemplate notificationTemplateDemo() {
		NotificationTemplate template = new NotificationTemplate();
		// 设置APPID与APPKEY
		template.setAppId(COMM.appId);
		template.setAppkey(COMM.appKey);
		// 设置通知栏标题与内容
		template.setTitle("请输入通知栏标题");
		template.setText("请输入通知栏内容");
		// 配置通知栏图标
		template.setLogo("icon.png");
		// 配置通知栏网络图标
		template.setLogoUrl("");
		// 设置通知是否响铃，震动，或者可清除
		template.setIsRing(true);
		template.setIsVibrate(true);
		template.setIsClearable(true);
		// 透传消息设置，1为强制启动应用，客户端接收到消息后就会立即启动应用；2为等待应用启动
		template.setTransmissionType(2);
		template.setTransmissionContent("请输入您要透传的内容");
		return template;
	}
}